package com.example.designhbwxz.book.service;

import com.example.designhbwxz.book.pojo.UserInfo;

import javax.servlet.http.HttpServletRequest;

/**
 * 桥接模式接口
 * <p/>
 * 包含原有的【登陆、注册、校验用户是否存在】的接口
 * 新接入【第三方登陆】方法
 *
 * @author shenzw
 * @date 2023/10/28
 */
public interface RegisterLoginFuncInterface {

    /// 以下三个方法的创建，我们已经感受到了“重构”的强烈气息，需要把 UserService 的逻辑移到改类的子类中
    /**
     * 登陆
     *
     * @param account  账号
     * @param password 密码
     * @return String
     */
    String login(String account, String password);

    /**
     * 用户注册
     *
     * @param userInfo 用户信息
     * @return String
     */
    String register(UserInfo userInfo);

    /**
     * 校验用户是否已经存在【注册和登陆的时候】
     *
     * @param userName 用户名
     * @return boolean
     */
    boolean checkUserExists(String userName);

    /// 新接入的方法
    /**
     * 第三方账号登陆接口
     *
     * @param request HttpServletRequest
     * @return String
     */
    String login3rd(HttpServletRequest request);
}
